<?php

/**
 * This is the model class for table "tbl_interesadovisita".
 *
 * The followings are the available columns in table 'tbl_interesadovisita':
 * @property integer $interesadovisita_persona_tipodocumento_id
 * @property string $interesadovisita_persona_numerodocumento
 * @property string $interesadovisita_fecha
 * @property integer $interesadovisita_asistio
 * @property string $interesadovisita_observacion
 * @property string $interesadovisita_creado
 * @property string $interesadovisita_creado_usuario_id
 * @property string $interesadovisita_modificado
 * @property string $interesadovisita_modificado_usuario_id
 */
class InteresadoVisita extends MyCActiveRecord
{
	public $interesadovisita_persona_apellido;
	public $interesadovisita_persona_nombres;
	
	public $interesadovisita_tipodocumento_abreviacion;
	/**
	 * Returns the static model of the specified AR class.
	 * @return InteresadoVisita the static model class
	 */
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}

	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return 'tbl_interesadovisita';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('interesadovisita_persona_tipodocumento_id, interesadovisita_persona_numerodocumento, interesadovisita_fecha, interesadovisita_creado, interesadovisita_creado_usuario_id', 'required'),
			array('interesadovisita_persona_tipodocumento_id, interesadovisita_asistio', 'numerical', 'integerOnly'=>true),
			array('interesadovisita_persona_numerodocumento', 'length', 'max'=>50),
			array('interesadovisita_creado_usuario_id, interesadovisita_modificado_usuario_id', 'length', 'max'=>20),
			// The following rule is used by search().
			// Please remove those attributes that should not be searched.
			array('interesadovisita_persona_tipodocumento_id, interesadovisita_persona_numerodocumento, interesadovisita_fecha, interesadovisita_asistio, interesadovisita_observacion, interesadovisita_creado, interesadovisita_creado_usuario_id, interesadovisita_modificado, interesadovisita_modificado_usuario_id', 'safe', 'on'=>'search'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
						'tipoDocumento' => array(self::BELONGS_TO, 'TipoDocumento', 'interesadovisita_persona_tipodocumento_id'),
						'persona' => array(
											self::BELONGS_TO,
											'Persona',
											'interesadovisita_persona_numerodocumento,interesadovisita_persona_tipodocumento_id'),
						'usuarioCreador' => array(self::BELONGS_TO, 'Usuario', 'interesadovisita_creado_usuario_id'),
						'usuarioModificador' => array(self::BELONGS_TO, 'Usuario', 'interesadovisita_modificado_usuario_id'),
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'interesadovisita_persona_tipodocumento_id' => t('Tipo DOC','persona_etiqueta'),
			'interesadovisita_persona_numerodocumento' => t('Numero DOC','persona_etiqueta'),
			'interesadovisita_fecha' => t('Fecha Visita','persona_etiqueta'),
			'interesadovisita_asistio' => t('Asistio','persona_etiqueta'),
			'interesadovisita_observacion' => t('Observacion','nucleo_etiqueta'),
			'interesadovisita_creado' => t('Fecha Creado','persona_etiqueta'),
			'interesadovisita_creado_usuario_id' => t('Usuario Creador','persona_etiqueta'),
			'interesadovisita_modificado' => t('Fecha Modificado','persona_etiqueta'),
			'interesadovisita_modificado_usuario_id' => t('Usuario Modificador','persona_etiqueta'),
			'interesadovisita_persona_apellido' => t('Apellidos','persona_etiqueta'),
			'interesadovisita_persona_nombres' => t('Nombres','persona_etiqueta'),
			'interesadovisita_tipodocumento_abreviacion' => t('Tipo DOC','persona_etiqueta'),
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
	 */
	public function search()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('interesadovisita_persona_tipodocumento_id',$this->interesadovisita_persona_tipodocumento_id);
		$criteria->compare('interesadovisita_persona_numerodocumento',trim($this->interesadovisita_persona_numerodocumento),true);
		$criteria->compare('interesadovisita_fecha',$this->interesadovisita_fecha,true);
		$criteria->compare('interesadovisita_asistio',$this->interesadovisita_asistio);
		$criteria->compare('interesadovisita_observacion',$this->interesadovisita_observacion,true);
		$criteria->compare('interesadovisita_creado',$this->interesadovisita_creado,true);
		$criteria->compare('interesadovisita_creado_usuario_id',$this->interesadovisita_creado_usuario_id,true);
		$criteria->compare('interesadovisita_modificado',$this->interesadovisita_modificado,true);
		$criteria->compare('interesadovisita_modificado_usuario_id',$this->interesadovisita_modificado_usuario_id,true);
		
		$criteria->with = array('persona');
		$criteria->compare('persona.persona_apellido',$this->interesadovisita_persona_apellido,true);
		$criteria->compare('persona.persona_nombres',$this->interesadovisita_persona_nombres,true);
		
		
		$sort = array('attributes'=>array(
            								'interesadovisita_persona_apellido'=>array(
                								'asc'=>'persona.persona_apellido',
                								'desc'=>'persona.persona_apellido DESC',
            								),
            								'interesadovisita_persona_nombres'=>array(
                								'asc'=>'persona.persona_nombres',
                								'desc'=>'persona.persona_nombres DESC',
            								),
            								'*',
        								),
        			'defaultOrder'=>array('interesadovisita_persona_apellido'=>false,'interesadovisita_persona_nombres'=>false),
    	);
		
		
		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
			'sort'=>$sort,
		));
	}
	
	public function beforeSave()
	{
		parent::beforeSave();
		$this->interesadovisita_fecha = date('Y-m-d H:i', strtotime(str_replace('/','-',$this->interesadovisita_fecha)));

		return TRUE;
	}
	
	public function afterFind()
	{
		parent::afterFind();
		$this->interesadovisita_fecha = date('d/m/Y H:i', strtotime(str_replace('-','/',$this->interesadovisita_fecha)));
		return true;
	}
	
}